<!DOCTYPE html>
<html lang="en" manifest="/release.manifest" data-framework="typescript">

<head>
    <meta charset="utf-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1" />
    <meta name="viewport" content="width=device-width,height=device-height,user-scalable=no,initial-scale=1.0,maximum-scale=1.0,minimum-scale=1.0">

    
<!-- include appmeta.html -->

<!-- include robotsmeta.html -->

<!-- end include robotsmeta.html -->

<title>MakeCode Maker - Blocks / Javascript editor</title>
<meta name="description" content="A Blocks / JavaScript code editor for MakeCode Maker Boards" />
<link rel="manifest" href="/sim.webmanifest">

<meta name="mobile-web-app-capable" content="yes">
<meta name="apple-mobile-web-app-capable" content="yes">
<meta name="apple-mobile-web-app-title" content="MakeCode Maker - Blocks / Javascript editor">
<meta name="apple-mobile-web-app-status-bar-style" content="translucent-black">
<meta name="format-detection" content="telephone=no">
<meta name="application-name" content="MakeCode Maker - Blocks / Javascript editor">

<meta name="msapplication-TileColor" content="#ecf0f1">
<meta name="msapplication-TileImage" content="">
<meta name="msapplication-config" content="none"/>
<meta name="theme-color" content="#ecf0f1">

<meta name="twitter:card" content="summary" />
<meta name="twitter:site" content="" />
<meta name="twitter:title" content="MakeCode Maker - Blocks / Javascript editor" />
<meta name="twitter:description" content="A Blocks / JavaScript code editor for MakeCode Maker Boards" />
<meta name="twitter:image" content="" />

<meta property="og:title" content="MakeCode Maker - Blocks / Javascript editor" />
<meta property="og:site_name" content="MakeCode Maker - Blocks / Javascript editor" />
<meta property="og:description" content="A Blocks / JavaScript code editor for MakeCode Maker Boards" />
<meta property="og:image" content="" />

<link rel="apple-touch-icon" href="">
<link rel="icon" type="image/png" href="">
<link rel="shortcut icon" href="">

<!-- end include appmeta.html -->


    <link rel="stylesheet" data-rtl="/rtlsemantic.css" href="/semantic.css" type="text/css">
</head>

<body class="main">
    <div id='loading' class="ui active dimmer">
        <div class="ui large main loader"></div>
    </div>

    <div id='custom-content'>
    </div>

    <div id="allcontent">
        <div id="cookiebanner"></div>
        <div id="editorcontent">
            <div id='content' class="ui dimmable full-abs">
            </div>
        </div>
    </div>

    <div id='msg' aria-live="polite">
        <div id='errmsg' class="ui red inverted segment"></div>
        <div id='warnmsg' class="ui orange inverted segment"></div>
        <div id='infomsg' class="ui teal inverted segment"></div>
        <div id='compilemsg' class="ui ignored info message"></div>
    </div>

    <script>
        // This line gets patched up by the cloud
        var pxtConfig = {
    "relprefix": "/",
    "verprefix": "",
    "workerjs": "/worker.js",
    "monacoworkerjs": "/monacoworker.js",
    "pxtVersion": "5.2.31",
    "pxtRelId": "",
    "pxtCdnUrl": "/",
    "commitCdnUrl": "/",
    "blobCdnUrl": "/",
    "cdnUrl": "/",
    "targetVersion": "0.0.0",
    "targetRelId": "",
    "targetUrl": "",
    "targetId": "maker",
    "simUrl": "/simulator.html",
    "partsUrl": "/siminstructions.html",
    "runUrl": "/run.html",
    "docsUrl": "/docs.html",
    "isStatic": true
};
    </script>
    
<!-- include apptrackingweb.html -->
<script type="text/javascript" src="/pxtweb.js"></script>
<!-- end include apptrackingweb.html -->

    
<!-- include apptracking.html -->
<script type="text/javascript">
    window.loadAppInsights = function (includeCookie) {
        var appInsights=window.appInsights||function(config){
            function i(config){t[config]=function(){var i=arguments;t.queue.push(function(){t[config].apply(t,i)})}}var t={config:config},u=document,e=window,o="script",s="AuthenticatedUserContext",h="start",c="stop",l="Track",a=l+"Event",v=l+"Page",y=u.createElement(o),r,f;y.src=config.url||"https://az416426.vo.msecnd.net/scripts/a/ai.0.js";u.getElementsByTagName(o)[0].parentNode.appendChild(y);try{t.cookie=u.cookie}catch(p){}for(t.queue=[],t.version="1.0",r=["Event","Exception","Metric","PageView","Trace","Dependency"];r.length;)i("track"+r.pop());return i("set"+s),i("clear"+s),i(h+a),i(c+a),i(h+v),i(c+v),i("flush"),config.disableExceptionTracking||(r="onerror",i("_"+r),f=e[r],e[r]=function(config,i,u,e,o){var s=f&&f(config,i,u,e,o);return s!==!0&&t["_"+r](config,i,u,e,o),s}),t
        }({
            instrumentationKey:"9801ed01-c40f-46ec-aa40-2a1742a9e71c",
            disableAjaxTracking: true,
            overridePageViewDuration: false,
            disableExceptionTracking: true,
            isCookieUseDisabled: !includeCookie,
            isStorageUseDisabled: !includeCookie,
            url: "/ai.0.js"
        });
        window.appInsights=appInsights;
        appInsights.queue.push(function () {
            appInsights.context.addTelemetryInitializer(function (envelope) {
                if (typeof pxtConfig === "undefined") return;
                var telemetryItem = envelope.data.baseData;
                telemetryItem.properties = telemetryItem.properties || {};
                telemetryItem.properties["target"] = pxtConfig.targetId;
                telemetryItem.properties["stage"] = (pxtConfig.relprefix || "/--").replace(/[^a-z]/ig, '')
                telemetryItem.properties["cookie"] = includeCookie;
                if (typeof Windows !== "undefined")
                    telemetryItem.properties["WindowsApp"] = 1;
                var userAgent = navigator.userAgent.toLowerCase();
                var userAgentRegexResult = /\belectron\/(\d+\.\d+\.\d+.*?)(?: |$)/i.exec(userAgent); // Example navigator.userAgent: "Mozilla/5.0 Chrome/61.0.3163.100 Electron/2.0.0 Safari/537.36"
                if (userAgentRegexResult) {
                    telemetryItem.properties["Electron"] = 1;
                    telemetryItem.properties["ElectronVersion"] = userAgentRegexResult[1];
                }
                if (typeof pxtElectron !== "undefined") {
                    telemetryItem.properties["PxtElectron"] = 1;
                    telemetryItem.properties["ElectronVersion"] = pxtElectron.versions.electronVersion;
                    telemetryItem.properties["ChromiumVersion"] = pxtElectron.versions.chromiumVersion;
                    telemetryItem.properties["NodeVersion"] = pxtElectron.versions.nodeVersion;
                    telemetryItem.properties["PxtElectronVersion"] = pxtElectron.versions.pxtElectronVersion;
                    telemetryItem.properties["PxtCoreVersion"] = pxtElectron.versions.pxtCoreVersion;
                    telemetryItem.properties["PxtTargetVersion"] = pxtElectron.versions.pxtTargetVersion;
                    telemetryItem.properties["PxtElectronIsProd"] = pxtElectron.versions.isProd;
                }
            });
        });
        appInsights.trackPageView(null, scrubUrl(window.location.toString()), {urlReferrer: scrubUrl(document.referrer.toString())});

        //Scrub the key (if any) from the URL.
        function scrubUrl(url) {
            var scriptIdRegex = /(?:\d{5}-\d{5}-\d{5}-\d{5})|(?:_[0-9a-zA-Z]{12})/g;
            return url.replace(scriptIdRegex, "xxxxx-xxxxx-xxxxx-xxxxx");
        }
    }
    pxt.initAnalyticsAsync();
</script>
<!-- end include apptracking.html -->

    <script type="text/javascript" src="/pxtapp.js"></script>
    <script type="text/javascript" src="/target.js"></script>
    <script id="mainscript" type="text/javascript" src="/main.js"></script>
    <xml id="blocklyToolboxDefinitionCategory" style="display: none">
        <!-- An empty category is required so that Blockly launches in category mode -->
        <category name="">
        </category>
    </xml>
    <xml id="blocklyToolboxDefinitionFlyout" style="display: none">
    </xml>
    <script>
        // Before loading vs/editor/editor.main, define a global MonacoEnvironment that overwrites
        // the default worker url location (used when creating WebWorkers). The problem here is that
        // HTML5 does not (yet) allow cross-domain web workers, so we need to proxy the instantion of
        // a web worker through a same-domain script
        window.MonacoEnvironment = {
            getWorkerUrl: function(workerId, label) {
                return pxt.webConfig.monacoworkerjs;
            }
        };

        // this get rewritten to blob URLs with SHAs while uploading to the cloud
        // keep in sync with release.manifest
        window.MonacoPaths = {
            "vs/loader": "/vs/loader.js",
            "vs/base/worker/workerMain": "/vs/base/worker/workerMain.js",
            "vs/basic-languages/src/bat": "/vs/basic-languages/src/bat.js",
            "vs/basic-languages/src/cpp": "/vs/basic-languages/src/cpp.js",
            "vs/editor/editor.main.css": "/vs/editor/editor.main.css",
            "vs/editor/editor.main": "/vs/editor/editor.main.js",
            "vs/editor/editor.main.nls": "/vs/editor/editor.main.nls.js",
            "vs/language/json/jsonMode": "/vs/language/json/jsonMode.js",
            "vs/language/json/jsonWorker": "/vs/language/json/jsonWorker.js",
            "vs/language/typescript/lib/typescriptServices": "/vs/language/typescript/lib/typescriptServices.js",
            "vs/language/typescript/src/mode": "/vs/language/typescript/src/mode.js",
            "vs/language/typescript/src/worker": "/vs/language/typescript/src/worker.js",
            "lzma/lzma_worker-min.js": "/lzma/lzma_worker-min.js",
            "smoothie/smoothie_compressed.js": "/smoothie/smoothie_compressed.js",
            "pxtblockly.js": "/pxtblockly.js",
            "blockly.css": "/blockly.css",
            "rtlblockly.css": "/rtlblockly.css"
        }
    </script>
</body>

</html>
